/******************************************************************************
秋夜静，独坐对残灯。
啼笑非非谁识我，坐行梦梦尽缘君，何所慰消沉。
风卷雨，雨复卷侬心。
心似欲随风雨去，茫茫大海任浮沉。
无爱亦无恨。
******************************************************************************/
#ifndef _KB_RGB_XY2ANGLE_H_
#define _KB_RGB_XY2ANGLE_H_

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

// precision
// 权衡精度和空间占用,该浮点运算为整数运算
#define KBRGB_XY2ANGLE_PRE      1   // 精度为 1bit
#define KBRGB_XY2RADIUS_PRE     8   // 精度为 8bit
#define KBRGB_PI            (3.141592654f)

#define KBRGB_ANGLE_SIZE      21

/*************************************************************************************************
* 为节省空间占用,仅计算 0-90°范围,其它角度根据象限间的关系重新计算
* 为节保留 精度并加快运算速度,将处理后的结果保存为整型，精度为 1/2
**************************************************************************************************/
extern void kbRGB_XY2Angle_Int(void);
/*************************************************************************************************
* 根据坐标通过查表的方式获取角度值和半径
* 为节保留 精度并加快运算速度,将处理后的结果保存为整型，精度为 1/2
**************************************************************************************************/
extern int16_t kbRGB_XY2Angle(const int8_t x, const int8_t y);
extern uint32_t kbRGB_XY2Radius(const int8_t x, const int8_t y);
extern float CarmackSqrt (float x);

#ifdef __cplusplus
}
#endif

#endif // _KB_RGB_XY2ANGLE_H_
